/**
 * Fecha: 24-sep-2013
 * Nombre Clase: Workflow.java
 * Descripcion clase: 
 */
package vwg.na.vwm.rh.rhmotor.modelo.entidad;

import java.io.Serializable;
import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;

import vwg.na.vwm.rh.motorsdk.commons.entidades.Persona;

@Entity
@Table(name = "pendiente", uniqueConstraints={@UniqueConstraint(columnNames =
{"registroId","actividadId","personaAplica"})})
public class Pendiente implements Serializable {

	private static final long serialVersionUID = 1L;

	public final static char AUTOMATICO_S = 'S';
	public final static int GRUPO_NO_ES_GRUPO = 0;
	public final static int GRUPO_SI_ES_GRUPO = 1;
	public final static int MODIFICADO_SI = 1;
	public final static int MODIFICADO_NO = 2;

	private Long registroId;
	private Actividad actividadId;
	private Persona personaAplica;
	private Calendar fechaAviso;
	private Calendar fechaAsignacion;
	private Integer automatico;
	private Integer grupo;
	private Integer modificado;
	private String titulo;

	@Id
	@Column
	public Long getRegistroId() {
		return registroId;
	}

	public void setRegistroId(Long registroId) {
		this.registroId = registroId;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "actividadId")
	public Actividad getActividadId() {
		return actividadId;
	}

	public void setActividadId(Actividad actividadId) {
		this.actividadId = actividadId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "personaAplica")
	public Persona getPersonaAplica() {
		return personaAplica;
	}

	public void setPersonaAplica(Persona personaAplica) {
		this.personaAplica = personaAplica;
	}

	@Generated(GenerationTime.ALWAYS)
	@Temporal(TemporalType.TIMESTAMP)
	@Column
	public Calendar getFechaAviso() {
		return fechaAviso;
	}

	public void setFechaAviso(Calendar fechaAviso) {
		this.fechaAviso = fechaAviso;
	}

	@Generated(GenerationTime.ALWAYS)
	@Temporal(TemporalType.TIMESTAMP)
	@Column
	public Calendar getFechaAsignacion() {
		return fechaAsignacion;
	}

	public void setFechaAsignacion(Calendar fechaAsignacion) {
		this.fechaAsignacion = fechaAsignacion;
	}

	@Column
	public Integer getAutomatico() {
		return automatico;
	}

	public void setAutomatico(Integer automatico) {
		this.automatico = automatico;
	}

	@Column
	public Integer getGrupo() {
		return grupo;
	}

	public void setGrupo(Integer grupo) {
		this.grupo = grupo;
	}

	@Column
	public Integer getModificado() {
		return modificado;
	}

	public void setModificado(Integer modificado) {
		this.modificado = modificado;
	}

	@Column
	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
}
